<?php
/**
 * Created by PhpStorm.
 * User: LiuJiaJun
 * Date: 2018/2/22
 * Time: 10:05
 */

class LogFactory
{

    /**
     * 配置信息，可以为PHP数组、xml文件的url、property文件的url
     * @var null
     */
    protected static $config = null;
    /**
     * 错误信息
     * @var null
     */
    protected static $errorMessage = null;

    /**
     * 关闭构造函数，禁止实例化
     * BaseLogFactory constructor.
     */
    private function __construct()
    {
    }

    /**
     * 禁止克隆
     */
    private function __clone()
    {
    }

    /**
     * 获取日志实例化
     * @param $loggerName
     * @return bool|\Logger
     */
    public static function getLogger($loggerName){
        if(self::$config === null){
            //默认加载Common下的配置文件
            $configUrl = 'config/log4php.php';
            if(file_exists($configUrl)){
                $config = require_once $configUrl;
                self::$config = $config['DefaultSocketServiceLogFactory'];
            }else{
                self::$errorMessage = '配置信息未设置';
                return false;
            }
        }
        require_once 'Log4php/Logger.php';
        \Logger::configure(self::$config);
        return \Logger::getLogger($loggerName);
    }

    /**
     * 设置配置
     * @param array $config
     */
    public static function setConfig($config = []){
        self::$config = $config;
    }

    /**
     * 获取配置信息
     * @return null
     */
    public static function getConfig(){
        return self::$config;
    }
    /**
     * 获取错误信息
     * @return null
     */
    public static function getErrorMessage(){
        return self::$errorMessage;
    }

}